package com.wondertek.service.service.sys;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.wondertek.service.dto.sys.req.SysDictAddReq;
import com.wondertek.service.dto.sys.req.SysDictQueryChildrenReq;
import com.wondertek.service.dto.sys.req.SysDictQueryReq;
import com.wondertek.service.dto.sys.req.SysDictUpdateReq;
import com.wondertek.service.entity.sys.SysDictPo;

import java.util.List;


/**
 * @author xqs
 */
public interface ISysDictService extends IService<SysDictPo> {

    /**
     * 分页查询子级字典
     * @param sysDictQueryChildrenReq /
     * @return /
     */
    Page<SysDictPo> findChildrenPage(SysDictQueryChildrenReq sysDictQueryChildrenReq);

    /**
     * 查询所有字典
     * @return /
     */
    List<SysDictPo> findTree(SysDictQueryReq sysDictQueryReq);

    /**
     * 字典code查询字典
     * @return /
     */
    List<SysDictPo> findListByDictCode(String dictCode);

    /**
     * 新增字典
     * @param sysDictAddReq /
     */
    void add(SysDictAddReq sysDictAddReq);

    /**
     * 修改字典
     * @param sysDictUpdateReq /
     */
    void update(SysDictUpdateReq sysDictUpdateReq);

    /**
     * 禁用字典
     * @param id /
     */
    void disable(String id);

    /**
     * 启用字典
     * @param id /
     */
    void enable(String id);

    /**
     * 删除字典
     * @param id /
     */
    void delete(String id);

    /**
     * 缓存的字典
     */
    List<SysDictPo> findCacheList();
}
